package com.cmc.cloud.cmclink.doc.vo.sovo.sovo;

import com.cmc.cloud.cmclink.doc.vo.sovo.attachmentvo.AttachmentUpdateReqVO;
import com.cmc.cloud.cmclink.doc.vo.sovo.requirementsvo.RequirementsUpdateReqVO;
import com.cmc.cloud.cmclink.doc.vo.sovo.socargovo.SoCargoUpdateReqVO;
import com.cmc.cloud.cmclink.doc.vo.sovo.socontactvo.SoContactUpdateReqVO;
import com.cmc.cloud.cmclink.doc.vo.sovo.soforecastvo.SoForecastUpdateReqVO;
import com.cmc.cloud.cmclink.doc.vo.sovo.soscnvo.SoScnUpdateReqVO;
import com.cmc.cloud.cmclink.doc.vo.sovo.sovslvoyvo.SoVslvoyUpdateReqVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.ToString;

import javax.validation.Valid;
import java.util.List;
/**
 * 管理后台 - 订舱 UpdateReqonse create VO
 *
 * @author cz
 * @date 2025/07/14 11:25
 */
@Schema(description = "管理后台 - 订舱 UpdateReqonse create VO")
@Data
@ToString(callSuper = true)
@Valid
public class SoCreateAndUpdateReqVo {

    @Schema(description = "订舱已确认修改旧订舱ID")
    private Long oldId;
    @Schema(description = "订舱信息")
    @Valid
    private SoUpdateReqVO so;
    @Schema(description = "订舱相关方信息")
    @Valid
    SoScnUpdateReqVO soScn;
    @Schema(description = "订舱航次路径")
    @Valid
    private List<SoVslvoyUpdateReqVO> soVslvoyList;
    @Schema(description = "订舱预配信息")
    @Valid
    private List<SoForecastUpdateReqVO> soForecastList;
    @Schema(description = "订舱货物信息")
    @Valid
    private List<SoCargoUpdateReqVO> soCargoList;
    @Schema(description = "订舱联系人信息")
    @Valid
    private List<SoContactUpdateReqVO> soContactList;
    @Schema(description = "订舱附件")
    @Valid
    private List<AttachmentUpdateReqVO> attachmentList;
    @Schema(description = "订舱附加要求")
    @Valid
    private List<RequirementsUpdateReqVO> requirementsList;
    @Schema(description = "审批通过后修改申请理由")
    private String applyReason;
    @Schema(description = "操作类型")
    private String operatianType;

    @Schema(description = "保存或提交，默认提交true")
    private Boolean commitOrSave;
    @Schema(description = "特种货标记")
    private Boolean specialCargoFlag;
}
